package com.akeil.flash.utils;

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import com.akeil.flash.statusline.GreenTextStatusLineContributionItem;

/**
 * 
* <p> classname ： TimerManager</p>
* <p> description ：TODO</p>
* <p> author ： 金雪松 jinxuesong@163.com</p>
* <p> date ： 2019年8月28日 上午10:07:24</p>
 */
public class StatusTimerManager {
    /**
     * 单例模式
     */
    private static StatusTimerManager timerManager = null;
    
    private GreenTextStatusLineContributionItem greenTextStatusLineContributionItem = null;
    
    private StatusTimerManager(GreenTextStatusLineContributionItem greenTextStatusLineContributionItem){
    	this.greenTextStatusLineContributionItem = greenTextStatusLineContributionItem;
    }
    
    public static StatusTimerManager getInstance(GreenTextStatusLineContributionItem greenTextStatusLineContributionItem){
        if(timerManager == null){
            timerManager = new StatusTimerManager(greenTextStatusLineContributionItem);
        }
        return timerManager;
    }
    
    /**
     * 定时器
     */
    private Timer timer = new Timer("statusTimer");
    
    /**
     * 定时任务
     */
    private TimerTask timerTask = null;
    
    /**
     * 启动定时任务
     */
    public void startTimerTask(){
    	//清除与定时关联的所有任务
        timer.purge();
        if(timerTask == null){
        	timerTask = new StatusTimerTask(greenTextStatusLineContributionItem);
        }
        timer.schedule(timerTask, new Date(), 1000);
    }
    
    /**
     * 定时任务取消
     */
    public void stopTimerTask(){
    	timerTask.cancel();
    	timerTask = null;//如果不重新new，会报异常
    }
}